package com.administrator.scoreManageSys.mapper.course;

import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author zsh
 * @date 2022/03/16/ 11:37
 */
public interface CourseMapper {
    /**
     * 获取考季列表
     * @return 考季列表
     * @param name 考季名称
     */
    List<Map<String, Object>> seasonList(String name);

    /**
     * 添加考季
     * @param name 考季名称
     * @param timeMillis  添加时间
     * @param userId 添加人
     */
    void seasonAdd(@Param("name") String name, @Param("timeMillis") long timeMillis, @Param("userId") Long userId);

    /**
     * 根据id1删除考季
     * @param id 考季id
     */
    void seasonDelete(@Param("id") Long id);

    /**
     * 根据id 修改考季名
     * @param id 考季id
     * @param name 修改考试吗
     */
    void seasonUpdate(@Param("id") Long id, @Param("name") String name);

    /**
     * 获取科目列表
     * @return 科目列表
     * @param name 科目名称
     */
    List<Map<String, Object>> subjectList(@Param("name") String name);

    /**
     * 添加科目
     * @param userId 操作人id
     * @param name 科目名称
     * @param timeMillis 创建时间
     */
    void subjectAdd(@Param("userId") Long userId, @Param("name") String name,  @Param("timeMillis") long timeMillis);

    /**
     * 根据id删除科目
     * @param id 根据id删除科目
     */
    void subjectDelete(@Param("id") Long id);

    /**
     * 根据id修改科目
     * @param id 科目id
     * @param name 科目名称
     */
    void subjectUpdate(@Param("id") Long id, @Param("name") String name);

    /**
     * 获取课程列表
     * @return 课程列表
     * @param subject 科目id
     * @param name 授课姓名
     */
    List<Map<String, Object>> courseList(@Param("subject") Integer subject, @Param("name") String name);

    /**
     * 添加课程
     * @param name 课程名称
     * @param subject 课程管理科目id
     * @param userId 操作用户id
     * @param timeMillis 操作时间
     */
    void courseAdd(@Param("name") String name, @Param("subject") Long subject, @Param("userId") Long userId, @Param("timeMillis") long timeMillis);

    /**
     * 根据id删除课程
     * @param id 课程ID
     */
    void courseDeletion(@Param("id") Long id);

    /**
     * 修改课程
     * @param id 课程id
     * @param name 课程名称
     * @param subject 课程关联科目id
     */
    void courseUpdate(@Param("id") Long id, @Param("name") String name, @Param("subject") Long subject);
}
